package mobile

import (
	"fmt"
	"log"

	"github.com/babytap/server/internal/server"
)

// ServerBridge 服务器桥接器，用于 gomobile 绑定
type ServerBridge struct {
	server *server.HTTPSServer
}

// NewServerBridge 创建新的服务器桥接器
func NewServerBridge(dataDir string) (*ServerBridge, error) {
	// 默认端口 8553
	port := 8553

	// 创建 HTTPS 服务器
	httpsServer, err := server.NewHTTPSServer(port, dataDir)
	if err != nil {
		return nil, fmt.Errorf("创建 HTTPS 服务器失败: %w", err)
	}

	return &ServerBridge{
		server: httpsServer,
	}, nil
}

// Start 启动服务器
func (s *ServerBridge) Start() error {
	log.Println("🚀 通过 gomobile 启动 HTTPS 服务器")
	return s.server.Start()
}

// Stop 停止服务器
func (s *ServerBridge) Stop() error {
	log.Println("🛑 通过 gomobile 停止 HTTPS 服务器")
	return s.server.Stop()
}

// GetServerURL 获取服务器 URL
func (s *ServerBridge) GetServerURL() string {
	return "https://localhost:8553"
}

// GetDataDir 获取数据目录
func (s *ServerBridge) GetDataDir() string {
	return s.server.DataDir
}

// IsRunning 检查服务器是否正在运行
func (s *ServerBridge) IsRunning() bool {
	return s.server != nil
}
